﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DevComponents.DotNetBar;
using System.Security.Cryptography;

namespace QuanLyHangXeKhach
{
    public class DieuKhien
    {

        #region dùng chung
        // cat ngay trong masktexbox
        public DateTime catngay(string mask)
        {
            string m = mask;
            string ngay = m.Substring(0, 2);
            string thang = m.Substring(3, 2);
            string nam = m.Substring(6, 4);
            DateTime date = DateTime.Parse(thang + "/" + ngay + "/" + nam);
            return date;
        }

        public string NextID(string lastID, string prefixID)
        {
            int nextID = int.Parse(lastID.Remove(0, prefixID.Length)) + 1;
            int lengthNumerID = lastID.Length - prefixID.Length;
            string zeroNumber = "";
            for (int i = 1; i <= lengthNumerID; i++)
            {
                if (nextID < Math.Pow(10, i))
                {
                    for (int j = 1; j <= lengthNumerID - i; i++)
                    {
                        zeroNumber += "0";
                    }
                    return prefixID + zeroNumber + nextID.ToString();
                }
            }
            return prefixID + nextID;

        }

        private static readonly string[] VietnameseSigns = new string[]
        {

            "aAeEoOuUiIdDyY","áàạảãâấầậẩẫăắằặẳẵ", "ÁÀẠẢÃÂẤẦẬẨẪĂẮẰẶẲẴ", "éèẹẻẽêếềệểễ",  "ÉÈẸẺẼÊẾỀỆỂỄ","óòọỏõôốồộổỗơớờợởỡ", "ÓÒỌỎÕÔỐỒỘỔỖƠỚỜỢỞỠ","úùụủũưứừựửữ",
            "ÚÙỤỦŨƯỨỪỰỬỮ",
            "íìịỉĩ",
            "ÍÌỊỈĨ",
            "đ",
            "Đ",
            "ýỳỵỷỹ",
            "ÝỲỴỶỸ"
        };

        public string locDau(string str)
        {
            for (int i = 1; i < VietnameseSigns.Length; i++)
            {
                for (int j = 0; j < VietnameseSigns[i].Length; j++)
                    str = str.Replace(VietnameseSigns[i][j], VietnameseSigns[0][i - 1]);
            }
            return str;
        }

        public string taotendangnhap(string str)
        {
            string res = "";
            string[] tu = str.Split(' ');
            int len = tu.Length;
            for (int i = 0; i < len - 1; i++)
            {
                res += tu[i].Substring(0, 1);
            }
            res += tu[len - 1];            
            return res;
        }

        public string GenerateRandomPassword(int length)
        {
            byte[] randomArray = new byte[length];
            string randomString;
            RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
            rng.GetBytes(randomArray);
            randomString = Convert.ToBase64String(randomArray);
            return randomString;
        }

        #endregion

        #region Form Main
        private Command DoiMau;
        public Command DoiGiaoDien
        {
            get { return DoiMau; }
            set { DoiMau = value; }
        }

        #endregion

        #region Form frmKhachHangTraCuu

        private Command login;
        public Command DangNhap
        {
            get { return login; }
            set { login = value; }
        }
        private Command DatVe;
        public Command TraCuuDatVe
        {
            get { return DatVe; }
            set { DatVe = value; }
        }
        private Command TuyenDuong;
        public Command ThongTinTuyenDuong
        {
            get { return TuyenDuong; }
            set { TuyenDuong = value; }
        }
        #endregion

        #region Form frmTraCuuDatVe

        private Command dongdatve;
        public Command dongfrmdatve
        {
            get { return dongdatve; }
            set { dongdatve = value; }
        }
        #endregion

        #region Form thông tin tuyến đường
        private Command dongtttuyendg;
        public Command dongfrmtttuyendg
        {
            get { return dongtttuyendg; }
            set { dongtttuyendg = value; }
        }
        #endregion

        #region Form đăng nhập
        private Command dongdangnhap;
        public Command dongfrmdangnhap
        {
            get { return dongdangnhap; }
            set { dongdangnhap = value; }
        }       
        #endregion

        #region form chức năng nhân viên

        private Command thontinnv;
        public Command showthongtin
        {
            get { return thontinnv; }
            set { thontinnv = value; }
        }
        private Command logout;
        public Command dangxuat
        {
            get { return logout; }
            set { logout = value; }
        }

        private Command noiden;
        public Command shownoiden
        {
            get { return noiden; }
            set { noiden = value; }
        }

        private Command noidi;
        public Command shownoidi
        {
            get { return noidi; }
            set { noidi = value; }
        }

        private Command diemdung ;
        public Command showdiemdung
        {
            get { return diemdung; }
            set { diemdung = value; }
        }

        private Command tuyenduong;
        public Command showcntuyenduong
        {
            get { return tuyenduong; }
            set { tuyenduong = value; }
        }

        private Command giatuyen;
        public Command showcngiatuyen
        {
            get { return giatuyen; }
            set { giatuyen = value; }
        }

        private Command nvpt;
        public Command showcnnvpt
        {
            get { return nvpt; }
            set { nvpt = value; }
        }

        private Command cnxe;
        public Command showcnxe
        {
            get { return cnxe; }
            set { cnxe = value; }
        }

        private Command lichchay;
        public Command showcnlichchay
        {
            get { return lichchay; }
            set { lichchay = value; }
        }

        private Command khachhang;
        public Command showcnkhachhang
        {
            get { return khachhang; }
            set { khachhang = value; }
        }

        private Command cnnhanvien;
        public Command showcnnhanvien
        {
            get { return cnnhanvien; }
            set { cnnhanvien = value; }
        }

        private Command banve;
        public Command showbanve
        {
            get { return banve; }
            set { banve = value; }
        }

        private Command captk;
        public Command showcaptk
        {
            get { return captk; }
            set { captk = value; }
        }

        private Command tk;
        public Command showthongke
        {
            get { return tk; }
            set { tk = value; }
        }
        #endregion

        #region Form thông tin nhân viên
        private Command thongtinnv;
        public Command dongfrmttnv
        {
            get { return thongtinnv; }
            set { thongtinnv = value; }
        }
        #endregion

        #region Form Cập nhật nơi đến
        private Command dongnoiden;
        public Command dongfrmcnnd
        {
            get { return dongnoiden; }
            set { dongnoiden = value; }
        }
        #endregion

        #region Form Cập nhật nơi đi
        private Command dongnoidi;
        public Command dongfrmcnndi
        {
            get { return dongnoidi; }
            set { dongnoidi = value; }
        }
        #endregion

        #region Form Cập nhật điểm dừng chân
        private Command dongdiemdung;
        public Command dongfrmcndiemdung
        {
            get { return dongdiemdung; }
            set { dongdiemdung = value; }
        }
        #endregion

        #region Form Cập nhật tuyến đường
        private Command tuyen;
        public Command dongfrmcntuyenduong
        {
            get { return tuyen; }
            set { tuyen = value; }
        }
        #endregion

        #region Form Cập nhật giá tuyến đường
        private Command tuyendg;
        public Command dongfrmcngiatuyen
        {
            get { return tuyendg; }
            set { tuyendg = value; }
        }
        #endregion

        #region Form Cập nhật nhân viên phụ trách xe
        private Command nvptxe;
        public Command dongfrmcnnvptx
        {
            get { return nvptxe; }
            set { nvptxe = value; }
        }
        #endregion

        #region Form Cập nhật xe
        private Command dongxe;
        public Command dongfrmcnxe
        {
            get { return dongxe; }
            set { dongxe = value; }
        }
        #endregion

        #region Form Cập nhật lịch chạy
        private Command donglc;
        public Command dongfrmcnlc
        {
            get { return donglc; }
            set { donglc = value; }
        }
        #endregion

        #region Form Cập nhật lịch chạy
        private Command dongkh;
        public Command dongfrmcnkh
        {
            get { return dongkh; }
            set { dongkh = value; }
        }
        #endregion

        #region Form Cập nhật lịch chạy
        private Command dongnv;
        public Command dongfrmcnnv
        {
            get { return dongnv; }
            set { dongnv = value; }
        }
        #endregion

        #region Form Bán vé
        private Command dongbv;
        public Command dongfrmbanve
        {
            get { return dongbv; }
            set { dongbv = value; }
        }
        #endregion

        #region Form Cấp tài khoản
        private Command dongcaptk;
        public Command dongfrmcaptk
        {
            get { return dongcaptk; }
            set { dongcaptk = value; }
        }
        #endregion

        #region Form thống kê
        private Command dongtk;
        public Command dongfrmtk
        {
            get { return dongtk; }
            set { dongtk = value; }
        }
        #endregion

        #region phân quyền
        private Command kocoquyen;
        public Command NotQuanLy
        {
            get { return kocoquyen; }
            set { kocoquyen = value; }
        }
        #endregion

    }
}
